#ifndef __Euler_h
#define __Euler_h

#include "probleminterface.h"

/*----------------------------------------------------------*/

class Euler : public virtual ProblemInterface
{
protected:
  double _computeLambdaMax(const Vector& u) const;

public:
  Euler();
  int ncomp() const
  {
    return 3;
  }

  void initialCondition(Vector& u0, double x) const;
  void flux(Vector& flux, const Vector& u) const;
  void boundaryfluxleft(Vector& flux, const Vector& u) const;
  void boundaryfluxright(Vector& flux, const Vector& u) const;
  void interiorflux(Vector& flux, const Vector& ul, const Vector& ur) const;
  void computeVisu(Vector& wloc,const Vector& uloc) const;
};

#endif
